<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1.reverse()对数组中的元素进行反转，将数组元素倒序排列
        var arrs=["a","b","c","d"];
        arrs.reverse();
        console.log(arrs);
       

        // 2.sort()排序
        // var arrs2=[110,10,34,89,78,49,1001];
        // var arrs3=["alice","baby","lili","cici","angela"];//默认按照字符编码的顺序排列
        // arrs3.sort();
        // console.log(arrs3);

        var arrs4=[110,10,34,89,78,49,1001];
        //自定义比较规则
        // return a-b表示升序
        // return b-a表示降序
        arrs4.sort(function(a,b){
            return b-a;
        });
        console.log(arrs4);

        // 3.indexOf(查找的元素)返回指定元素在数组中第一次出现的位置
        // indexOf(查找的元素,start)返回指定元素在数组中指定的索引start开始查找第一个出现的位置
        var arrs5=["熊大","熊二","熊三","杨思","熊二","顾新宇","熊三"];
        // var index=arrs5.indexOf("熊二");
        var index=arrs5.indexOf("熊二",3);//从索引为3开始进行查找熊二
        console.log(index);
        console.log(arrs5.indexOf("嘻嘻嘻"));//如果找不到，返回值是-1

        // 4.lastIndexOf()返回指定元素在数组中最后一次出现的位置
        // lastIndexOf(查找的元素,start)
        // var index2=arrs5.lastIndexOf("熊二");
        // console.log(index2);
        console.log(arrs5.lastIndexOf("熊二"));
        // console.log(arrs5.lastIndexOf("熊二",3));//从索引为3的开始往前查找
        

        // 5.join()将数组拼接为string
        var arrs6=["a","b","c","d"];
        // var res=arrs6.join("*");
        var res=arrs6.join();//如果啥都没填，默认将数组中的元素以,逗号隔开
        console.log(res);
        

        //6.concat()将多个数组拼接成一个数组
        var arr1=["aa","bb","cc"];
        var arr2=["彭于晏","刘亦菲"];
        var arr3=["刘诗诗","刘思思"];
        var all=arr1.concat(arr2,arr3);//以逗号隔开
        console.log(all);

        // 7.push()向数组末尾添加一个或多个元素，并返回新的长度
        var arr4=["刘亦菲","迪丽热巴","马蓉","李小璐"];
        // arr4.push("杨昌盛");//相当于arr4[arr4.length]="杨昌盛";
        var n=arr4.push("杨昌盛","熊振宇","顾新宇");//同时向数组末尾添加3个元素,返回的是数组的最新长度
        console.log(arr4);
        console.log(n);

        // 8.unshift()向数组开头添加一个或多个元素，并返回新的长度
        var arr5=["a","b","c"];
        var m=arr5.unshift("熊","二","三");//以逗号隔开,向数组开头添加一个或多个元素,返回数组的最新长度
        console.log(arr5);
        console.log(m);

        // 9.pop()删除并返回数组的最后一个元素
        var arr6=["aa","bb","cc","dd"];
        var aa=arr6.pop();//删除并返回数组的最后一个元素
        console.log(arr6);
        console.log(aa);

        // 10.shift()删除并返回数组的第一个元素
        var arr7=["熊","羊","猪","狗"];
        var bb=arr7.shift();//删除并返回数组的第一个元素
        console.log(arr7);
        console.log(bb);

        //11.slice(start,stop) 返回数组中指定范围内的元素
        // 从start指定的索引开始，到stop结束，不包含stop
        var arr8=["熊","羊","猪","狗","鼠"];
        // var res2=arr8.slice(1,4);//从索引为1的开始截取，截取到索引为4的结束，不包含索引为4,[1,4)包含左边界，不包含右边界
        var res2=arr8.slice(2);//如果只填一个，表示从索引为2的开始截取到末尾
        console.log(res2);


        // 12.splice(start,len)删除元素，并在删除位置添加新的元素，然后返回被删除的元素
        var arr9=["岳云鹏","张云龙","柳云龙","李云龙","杨云龙"];
        // var n=arr9.splice(1,2);//从索引为1的开始，删除2位,并返回删除的数据
        var n=arr9.splice(1,2,"苗凯","故意鹏","刘涛");//从索引为1的开始，删除2位,又添加了3位，并返回删除的数据
        console.log(arr9);
        console.log(n);

        //13.toString()将数组转换为字符串
        var arr10=["a","b","c","d"];
        console.log(arr10.toString());

        // 14.valueOf()返回数组对象本身，一般会自动调用
        var arr11=["a","b","c"];
        console.log(arr11);
        console.log(arr11.valueOf());

        // 15.forEach()遍历数组中的每个元素
        var usernames=["alice","baby","cici"];
        usernames.forEach(function(value,index){
            // console.log(value);//数组中的元素的值
            console.log(index);//数组中的元素的索引
        });
    </script>
</head>
<body>
    
</body>
</html>